/**
 * Created by Lixia on 2017/5/16.
 */
var allTds=new Array();//用于保存所有td的二维数组
var ck=30;//地图长度
var k=3;//初始长度
var she=new Array();//初始化蛇
var x=0;y=k-1;//蛇头坐标
var dir=2;//方向  1左，2右，3上，4下
var ji=nul;//控制游戏进程
var mark=0;//分数
var m,n;//食物坐标
var shan=null;//控制食物闪烁进程

window.onload=function () {
    for(var i=0;i<ck;i++){
        var tr=document.createElement("tr");
        var trs=new Array();//声明一个数组，用于保存此行的ck个td
        for(var j=0;j<ck;j++){
            var td=document.createElement("td");
            tr.appendChild(td);
            trs[j]=td;
        }
        document.getElementById("she").appendChild(tr);
        allTds[i]=trs;//保存到二维数组中
    }
    for(var i=0;i<k;i++){
        allTds[0][i].className="hei";
        she[i]=allTds[0][i];
    }
    window.document.onkeydown=keyDown;

};

/*移动方向*/
function keyDown(event) {
    switch (event.keyCode){
        case 37: dir=1;break;
        case 39: dir=2;break;
        case 38: dir=3;break;
        case 40: dir=4;break;
    }
}

/*蛇身隐藏与消除*/
function sheYin(obj) {
    obj[0].className="bai";
}
function sheXian(obj) {
    obj[obj.length-1].className="hei";
}

function weStart() {
    sheYin(she);//先消除蛇尾
    for(var i=0;i<she.length-1;i++){
        she[i]=she[i+1];
    }
    switch (dir){
        case 1:{she[k-1]=allTds[x][y-1];y-=1;}break;
        case 2:{she[k-1]=allTds[x][y+1];y+=1;}break;
        case 3:{she[k-1]=allTds[x-1][y];x-=1;}break;
        case 4:{she[k-1]=allTds[x+1][y];x+=1;}break;
    }
    sheXian(she);
    setTimeout(weStart,300);
}

function westop() {
    if(ji!=null){
        clearTimeout(ji);
    }
}

function overItC() {//结束游戏
    westop();
    alert('吃掉自己了！最终得分为：'+mark);
}

function overItZ() {//结束游戏
    westop();
    alert('撞墙了!最终得分:'+mark);
}

function shanshuo() {//让食物闪烁
    if(allTds[m][n].className=="hei"){
        allTds[m][n].className="bai";
    }else {
        allTds[m][n].className="hei";
    }
    shan=setTimeout("shanshuo()",500);
}
function shiwu() {//抛出食物
    if(shan!=null){
        clearTimeout(shan);
    }
    m=Math.floor(Math.random()*ck);//取值范围0~ck-1
    n=Math.floor(Math.random()*ck);//取值范围0~ck-1
    if(allTds[m][n].className=="hei"){
        shiwu();
    }else{
        allTds[m][n].className="hei";
    }
    shanshuo();
}
function zengIt() {//吃到虫子
    she[she.length]=allTds[m][n];
    k+=1;
    mark+=1;
    document.getElementById("mark").value=mark;//得分
    shiwu();
}
